#include <REGX52.H>

void UART_Init(void)		//4800bps@11.0592MHz //我的单片机好像是11MHz的
{
	PCON |= 0x80;		//使能波特率倍速位SMOD
	SCON = 0x50;		//8位数据,可变波特率
	TMOD &= 0x0F;		//清除定时器1模式位
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xF4;		//设定定时初值
	TH1 = 0xF4;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
}

//void UART_Init()//4800bps@12.000MHz 选4800是因为晶振，如果其他的，再12.000MHz下误差会比较大
//{
//	SCON = 0x40;//就是选择SM0=0 ，SM=1，其他都不配置，0100 0000，寄存器其他的自己去看表
//	PCON |= 0x80;//配置波特率，波特率加倍，这样误差小一些，如果不加倍误差大一些
//	//配置定时器T1，因为波特率就需要定时器T1一起，
//	//然后串口的定时器模式是 八位自动重装的模式，不是上一次的16位的模式了
//	TMOD&=0x0F;
//	TMOD|=0x20;//这样就确定了定时器T1的模式，定时，八位重装 0010 0000
//	TL1 = 0xF3;		//设定定时初值
//	TH1 = 0xF3;		//设定定时器重装值
//	ET1 = 0;		//禁止定时器1中断，因为初始化波特率是不需要进去中断的
//	TR1 = 1;		//启动定时器1

//}

void UART_SendByte(unsigned char Byte)
{
	SBUF = Byte;
	while(TI==0);//这个地方就是检测是不是发送过去了，因为你发送过去了TI就会置1，然后我们软件置0
	TI=0;
}